package cn.xeblog.commons.entity.game.chess;

import cn.xeblog.commons.entity.game.GameDTO;
import lombok.*;

/**
 * 棋子 数据传输对象
 *
 * @author anlingyi
 * @date 2020/6/5
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ChessDTO extends GameDTO {

    /**
     * 横坐标
     */
    private int x;
    /**
     * 纵坐标
     */
    private int y;

    /**
     * 对战方式：红方.true 黑方.false
     */
    private boolean type;

    /**
     * 棋子索引
     */
    private int index;

    /**
     * 选项
     */
    Option option = Option.DEFAULT;

    /**
     * 当前界面 用途：后期可设置我方和对方不同界面
     */
    public UI currentUI = UI.CLASSIC;

    /**
     * 选项
     */
    public enum Option {
        /**
         * 投降
         */
        SURRENDER,
        /**
         * 撤回
         */
        UNDO, UNDO_CONSENT, UNDO_REJECT,
        /**
         * 游戏结束
         */
        GAME_OVER,
        /**
         * 将军
         */
        CHECK,
        /**
         * 默认
         */
        DEFAULT
    }

    /**
     * 界面
     */
    @Getter
    @AllArgsConstructor
    public enum UI {
        /**
         * 经典模式界面
         */
        CLASSIC("经典模式", 1)
//        , FISH("摸鱼模式", 0)

        ;

        /**
         * 名称
         */
        private String name;

        /**
         * 值
         */
        private int value;
    }

}
